<?php

// $Id: content_handler_argument_many_to_one.inc,v 1.1.2.4 2009/04/05 01:41:21 yched Exp $

/**
 * @file
 * Handler for 'content_handler_argument_many_to_one' style.
 */
class content_handler_argument_many_to_one extends views_handler_argument_many_to_one {

    var $content_field;

    function construct() {
        parent::construct();

        $this->content_field = content_fields($this->definition['content_field_name']);
        $this->additional_fields = $this->definition['additional fields'];
    }

    function summary_name($data) {
        $options = $this->allowed_values();
        $value = $data->{$this->name_alias};
        if (isset($options[$value])) {
            $value = $options[$value];
        } else {
            $value = parent::summary_name($data);
        }

        return $value;
    }

    function title_query() {
        $options = $this->allowed_values();
        $values = $this->value;
        foreach ($values as $key => $value) {
            if (isset($options[$value])) {
                $values[$key] = $options[$value];
            }
        }
        return $values;
    }

    function allowed_values() {
        $field = $this->content_field;
        $function = $field['module'] . '_allowed_values';
        $options = function_exists($function) ? $function($field) : content_allowed_values($field);
        return (array) $options;
    }

}